// Cliente en Javascript

// La variable request hace referencia a la petición que hace el cliente y a la respuesta de la misma.
var request; 


// La siguiente función hace la petición al servidor, mandando los datos sobre el objeto de búsqueda de la información, la temática y el idioma.

function enviarReq() {
	// El tipo de petición será XMLHttpRequest.
	request = new XMLHttpRequest(); 

	// Declaramos variables para las opciones de la búsqueda.
	var obj = document.getElementById('objeto').value; 
	var tematica = document.getElementById('tematica').value; 
	var idioma = documen.getElementById('idioma').value;

	// Enviamos la petición al servidor.
	var url = 'http://(direccion del servidor)/servidor.cgi?obj='+encodeURIComponent(obj)+'&tematica='+tematica+'&idioma='+idioma; 
	request.open('GET', url, true); 
	request.onreadystatechange = recibirReq(); 
	request.send(null); 
} 

// Esta función recibe la respuesta a la petición y la "traduce" a HTML, incorporándola después a la interfaz del usuario. 
function recibirReq(){ 

	// El atributo readyState informa del estado actual del objeto. Cuando vale 4 el objeto está 'A punto' y ya podemos utilizarlo.
	if ( request.readyState == 4 ) {
		
		// Si el estado de la respuesta HTTP es 200 significa que se ha podido realizar correctamente. 
		if ( request.status == 200 ) { 
			
			// Se carga la respuesta y se introduce en el html en forma de lista sin numerar (<ul>). 
			var doc = request.responseXML; 
			var root = doc.documentElement; 
			var htmltext = "<ul>";
			// Obtenemos los distintos items de la respuesta y sus parámetros
			var items = root.getElementsByTagName('item');
			for (var i = 0; i < items.length; i++) {
				var titulo = items[i].getElementsByTagName('title')[0];
				var link = items[i].getElementsByTagName('link')[0];
				var descripcion = items[i].getElementsByTagName('description')[0];
				// Añadimos este item RSS al código .html
				htmltext += "<li><p><a href='"+link.firstChild.data + "'>"+titulo.firstChild.data+"</p> <p>"+description.firstChild.data+"</p></li>"; 
			}
			
			// Se cierra la lista y se implanta en la web en su bloque correspondiente (resultado)
			htmltext += "</ul>"; 
			document.getElementById('resultado').innerHTML = htmltext; 
		} 
	} 
}
